package com.restaurant.controller.mini;

import com.restaurant.common.result.Result;
import com.restaurant.entity.User;
import com.restaurant.service.UserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * 小程序用户控制器
 */
@RestController
@RequestMapping("/mini/user")
@Slf4j
public class UserController {

    @Autowired
    private UserService userService;

    /**
     * 用户登录
     */
    @PostMapping("/login")
    public Result<User> login(@RequestBody User user) {
        log.info("用户登录：{}", user);
        
        // 这里简化处理，实际应该验证微信登录
        if (user.getPhone() != null && !user.getPhone().isEmpty()) {
            // 查询用户是否存在
            User existUser = userService.lambdaQuery()
                    .eq(User::getPhone, user.getPhone())
                    .one();
            
            if (existUser == null) {
                // 新用户，创建账户
                user.setStatus(1);
                userService.save(user);
                return Result.success(user);
            } else {
                // 老用户，直接返回
                return Result.success(existUser);
            }
        }
        
        return Result.error("登录失败");
    }

    /**
     * 获取用户信息
     */
    @GetMapping("/{id}")
    public Result<User> getUserById(@PathVariable Long id) {
        log.info("获取用户信息：{}", id);
        User user = userService.getById(id);
        if (user != null) {
            return Result.success(user);
        }
        return Result.error("用户不存在");
    }

    /**
     * 更新用户信息
     */
    @PostMapping("/update")
    public Result<String> updateUser(@RequestBody User user) {
        log.info("更新用户信息：{}", user);
        boolean success = userService.updateById(user);
        if (success) {
            return Result.success("更新成功");
        }
        return Result.error("更新失败");
    }
}